// 作业3：计算器函数
// 实现一个计算器函数，接收两个数字和一个表示操作的字符串
// （'add'、'subtract'、'multiply'、'divide'），返回计算结果。使用联合类型和类型守卫确保类型安全。

function calculator(num1: number, num2: number, operation: 'add' | 'subtract' | 'multiply' | 'divide') {
    switch (operation) {
        case 'add':
            return num1 + num2;
        case 'subtract':
            return num1 - num2;
        case 'multiply':
            return num1 * num2;
        case 'divide':
            if (num2 === 0) {
                throw new Error('Division by zero is not allowed');
            }
            return num1 / num2;
        default:
            // 类型守卫：确保所有情况都被处理
            const _exhaustiveCheck: never = operation;
            return _exhaustiveCheck;
    }
}
